package com.doit.day01

import scala.Console.println

/**
 * by:循环得步长
 * reverse：数据得反转 就是集合中的一个方法
 * if 循环守卫
 * 引入变量
 * 双重for循环
 *
 * 练习：统计所有得水仙花数
 * 猜数字小游戏  猜5次
 */
object _05_循环 {
  def main(args: Array[String]): Unit = {

    val arr: Array[Int] = Array(1, 2, 3, 4, 5)

/*    for (elem <- arr) {
      println(elem)
    }*/

    //to until 都是表达的连续得完整得序列
//    val seq: Range.Inclusive =   // 0 1 2 3 4 5 6 7 8 9

//    val range: Range = 0 until 10 // 0 1 2 3 4 5 6 7 8 9

/*    for (elem <- 0 to 9) {
      println(elem)
    }*/

    //循环10次 打印1 到10
/*    for(elem <- 1 to 10){
      println(elem)
    }*/

    //to 是一个方法名  怎么调用方法呢？  其实这个 1 就是一个对象
//    val inclusive: Range.Inclusive = 1.to(10, 2)

    //by  循环步长
/*    for (elem <- 1 to 10 by 2) {
      println(elem)
    }*/


    //我想要：1-9 但是我唯独不要5
    for(elem <- 1 to 9){
      if (elem != 5){
        println(elem)
      }
    }

    //循环守卫
    for (elem <- 1 to 9 if elem != 5){
      println(elem)
    }


    //我想打印 9-1
    for(elem <- 9 to 1 by -1){
      println(elem)
    }

    for(elem <- 1 to 9 reverse){
      println(elem)
    }

    //引入变量
    var i = 0
    for(elem <- 1 to 5){
      i = 6 - elem
    }

    for(elem <- 1 to 5 ;i = 6 - elem){
      println(s"6 - $elem = $i")
    }


    //双重for循环   九九乘法表
    for(i <- 1 to 9){
      for(j <- 1 to i){
        print(s"$j * $i = ${i*j}\t")
      }
      println()
    }


    for (i <- 1 to 9;j <- 1 to i){
      print(s"$j * $i = ${i*j}\t")
      if (i == j) {
        println ()
      }
    }







  }

}
